Custom Action Filter তৈরি

Microsoft Technologies - এএসপি ডট নেট এমভিসি (ASP.Net MVC) ফিল্টার এবং অ্যাট্রিবিউট (Filters and Attributes) |
181
181

ASP.Net MVC-তে Action Filters হল সেই ফিল্টারগুলি যা কন্ট্রোলার অ্যাকশনের আগে এবং পরে কার্যকর হয়। এই ফিল্টারগুলি সাধারণত প্রাক-অ্যাকশন বা পোস্ট-অ্যাকশন লজিক কার্যকর করার জন্য ব্যবহৃত হয়। ASP.Net MVC আপনাকে কাস্টম Action Filter তৈরি করার সুযোগ দেয়, যা আপনার অ্যাপ্লিকেশন থেকে বিশেষ চাহিদা অনুযায়ী ফিল্টারিং কার্যক্রম নির্ধারণ করতে সাহায্য করে।

কাস্টম Action Filter তৈরি করার মাধ্যমে আপনি বিশেষ কার্যক্রম (যেমন লগিং, অথেন্টিকেশন, অথোরাইজেশন, কাস্টম বৈধতা চেক, ইত্যাদি) প্রয়োগ করতে পারেন।


Custom Action Filter তৈরির প্রক্রিয়া

ASP.Net MVC-তে কাস্টম Action Filter তৈরি করতে আপনাকে ActionFilterAttribute ক্লাসটি হেরিটেজ (inherit) করতে হবে এবং তার মধ্যে OnActionExecuting এবং OnActionExecuted মেথডগুলি ওভাররাইড করতে হবে। এর মাধ্যমে আপনি কন্ট্রোলার অ্যাকশন কলের আগে এবং পরে কাস্টম কার্যক্রম পরিচালনা করতে পারেন।


কাস্টম Action Filter তৈরি

ধরা যাক আমরা একটি কাস্টম Action Filter তৈরি করতে চাই যা প্রতিটি রিকোয়েস্টের লগ তৈরি করবে।

1. কাস্টম Action Filter ক্লাস তৈরি করা

প্রথমে, একটি নতুন ক্লাস তৈরি করুন যা ActionFilterAttribute ক্লাস থেকে হেরিট করবে। এরপর, OnActionExecuting এবং OnActionExecuted মেথডগুলিকে ওভাররাইড করুন।

using System.Web.Mvc;
using System.IO;

public class LogActionFilter : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        // রিকোয়েস্ট আসার আগে কার্যক্রম
        string logMessage = $"Action '{filterContext.ActionDescriptor.ActionName}' started at {DateTime.Now}";
        File.AppendAllText(HttpContext.Current.Server.MapPath("~/App_Data/ActionLog.txt"), logMessage + Environment.NewLine);
        
        base.OnActionExecuting(filterContext);
    }

    public override void OnActionExecuted(ActionExecutedContext filterContext)
    {
        // রিকোয়েস্ট পরবর্তী কার্যক্রম
        string logMessage = $"Action '{filterContext.ActionDescriptor.ActionName}' completed at {DateTime.Now}";
        File.AppendAllText(HttpContext.Current.Server.MapPath("~/App_Data/ActionLog.txt"), logMessage + Environment.NewLine);
        
        base.OnActionExecuted(filterContext);
    }
}

এখানে, OnActionExecuting মেথডে রিকোয়েস্ট আসার আগে একটি লগ তৈরি করা হচ্ছে এবং OnActionExecuted মেথডে অ্যাকশন শেষ হওয়ার পরে একটি লগ তৈরি করা হচ্ছে।

2. কাস্টম Action Filter প্রয়োগ করা

আপনার কাস্টম Action Filter তৈরি করার পরে, আপনি এটি কন্ট্রোলার বা একক অ্যাকশন মেথডে প্রয়োগ করতে পারেন। এটি করতে, LogActionFilter অ্যাট্রিবিউট ব্যবহার করুন।

কন্ট্রোলার স্তরে:
[LogActionFilter]
public class HomeController : Controller
{
    public ActionResult Index()
    {
        // কিছু কার্যক্রম
        return View();
    }
}

এখানে, HomeController কন্ট্রোলারে থাকা সমস্ত অ্যাকশন মেথডে কাস্টম Action Filter প্রযোজ্য হবে।

একক অ্যাকশন স্তরে:
public class HomeController : Controller
{
    [LogActionFilter]
    public ActionResult Index()
    {
        // কিছু কার্যক্রম
        return View();
    }
}

এখানে, কেবলমাত্র Index অ্যাকশন মেথডে কাস্টম Action Filter প্রযোজ্য হবে।


কাস্টম Action Filter-এর সুবিধা

  • লগিং: অ্যাকশন মেথডে কার্যকর লজিক সংযোজন করতে সাহায্য করে, যেমন লগ তৈরি করা, রিকোয়েস্ট ট্র্যাকিং ইত্যাদি।
  • অথেন্টিকেশন এবং অথোরাইজেশন: কাস্টম অথেন্টিকেশন এবং অথোরাইজেশন চেকের জন্য ব্যবহার করা যেতে পারে।
  • ডাটা ভ্যালিডেশন: ইনপুট ডেটা যাচাই করার জন্য ফিল্টার ব্যবহার করা যেতে পারে।
  • পারফরম্যান্স অপটিমাইজেশন: কিছু অ্যাকশন মেথডের আগে এবং পরে কাস্টম কার্যক্রম প্রয়োগ করে অ্যাপ্লিকেশনের পারফরম্যান্স অপটিমাইজ করা যেতে পারে।

সারমর্ম

ASP.Net MVC-তে কাস্টম Action Filter তৈরি করা একটি শক্তিশালী পদ্ধতি যা আপনাকে কন্ট্রোলার অ্যাকশনের আগে এবং পরে নির্দিষ্ট কার্যক্রম পরিচালনা করতে সাহায্য করে। কাস্টম ফিল্টার ব্যবহার করে আপনি লগিং, অথেন্টিকেশন, অথোরাইজেশন, ডেটা ভ্যালিডেশন এবং অন্যান্য অনেক কার্যক্রম কন্ট্রোল করতে পারেন। এটি কোড পুনঃব্যবহারযোগ্যতা এবং মেইনটেনেন্স সহজ করে তোলে, কারণ আপনি একই ফিল্টারটি বিভিন্ন কন্ট্রোলার এবং অ্যাকশন মেথডে প্রয়োগ করতে পারেন।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion